function myBind(context, ...args) {
    const self = this
    if (typeof self !== 'function') {
        throw new Error('Funtion Only')
    }

    const fn =  function (...arg1) {
        self.apply(this instanceof self ? this : context, args.concat(arg1))
    }
    fn.prototype = Object.create(self.prototype)
    return fn
}

